package cn.dglydrpy.study.algorithm.od;

/**
 * @author Yyy
 * @date 2024/11/10 17:59
 * @description
 * 因疫情防控，大型活动中每位观众需间隔至少一个空位落座，已知一排座位分布图（0 表示空座，1 表示已坐人），
 * 求在不移动现有观众座位的情况下最多还能坐下的观众数量。
 */
public class Od0039_FindAseat {
    public static void main(String[] args) {
//        String input = "10001";
        String input = "001000100101011010100010100";
        System.out.println(myAnswer(input));
    }

    private static int myAnswer(String input) {

        int ans = 0;
        if (input.length() < 1) {
            return ans;
        }

        if (input.length() == 1) {
            if ("0".equals(input.charAt(0))) {
                return 1;
            }
            return ans;
        }

        if (input.length() == 2) {
            if ("0".equals(input.charAt(0)) && "0".equals(input.charAt(1))) {
                return 1;
            }
            return ans;
        }

        char[] arr = input.toCharArray();

        for (int i = 0; i < arr.length; i++) {

            if (arr[i] == '0') {
                if (i == 0 && arr[i + 1] == '0') {
                    ans++;
                    arr[i] = '1';
                } else if (i == arr.length - 1) {
                    if(arr[i - 1] == '0') {
                        ans++;
                        arr[i] = '1';
                    }
                } else {
                    if (arr[i + 1] == '0' && arr[i - 1] == '0') {
                        ans++;
                        arr[i] = '1';
                    }
                }
            }
        }
        return ans;
    }
}
